UGeek大咖说第二期 | 百度专场【YY的亿级可观测监控实践】
「UGeek大咖说」大厂可观测系列之【百度专场】已经告一段落,小编周末加班吐血整理出亮点回顾,回馈下全程参与直播的观众同学们,也弥补下没能观看到直播的热心粉丝。下面进入回顾时间。
讲师分享
# 为什么要做服务治理:复杂业务往往由很多系统构成,不同系统之间的数据之间相互独立,如果没有统一的服务治理,业务运维要在多个系统之间去切换,运维流程也不可能打通,服务治理平台对IT环境的服务进行集中管理,接入服务治理平台,运维系统才能实现一体化的业务运维。
# 如何打通监控与服务治理:在实际的运维场景,需要对系统的监控数据进行关联,以一个多实例部署的应用运维为场景,需要将主机、业务、Trace、日志、告警和服务之间建立关联关系,一旦服务发生告警的话,可以将采集上来的监控数据和对应的服务实现自动化关联,包含主机、容器、Pod信息、机房网络、业务方上报的数据,基于Metrics、奥秘、APM、Trace的监控数据做不同告警类型分类与动态分析,通过告警去撰取对应的数据,帮助解决和定位具体的故障问题。
# 监控数据采集与存储模式相关分析:针对监控数据开发统一数据通道,先把数据分发到Kafka,通过Flink发放任务清洗数据,清洗过后有些会继续回流打卡,有些会去到HDFS,还会做元数据的离线处理,最后做相应的UI版式。
# 数据通道高可用实现:Agent完全内部自研,对接SDK,比如Metric监控、Aomi监控、主机上面各种脚本采集到的数据都会流通Agent,Clarke基于GRPC做了定制化开发,高可用会有两个集群去发送相同的数据,后面处理数据都是单独流程,数据量突发集群可以快速切换去做相关展示与告警处理,主域名与备域名动态切换,服务发现系统注册中心是用Console双集群。
# Metrics数据:内部定义多个维度,比如指标有区域XP、IDC、Host,通过不同维度去存储,比如指标单存储一份数据,IDC也会去存储数据,方便快速查询,相当于空间换时间的实现,数据底层目前是用HBase去做相关存储,离线现在是通过HDFS去做离线任务的数据修正,实时数据的及时率97%左右,针对实时数据在实时分析后会做离线分析处理,还会做离线数据的聚合处理,相当于是对实时的补充。
# Trace监控:用来解决多服务之间请求与质量的追踪,基于Jaeger定制化开发Clarke模块,Trace原始数据分发到Kafka和日志平台,Clarke后端上传和流转数据分发定制,去做服务拓扑、延时数据、错误数据的分析,计算任务通过Flink去做,数据存储到Druid。
# 如何做到服务端到客户端Trace的全链路打通:集成Jaeger的SDK,Trace相关数据通过SDK自动生成上报,跨服务数据通过SDK提供的API对Trace的ID做相关处理,全链路Trace配置监控目前手机客户端APP没有采用Jaeger的SDK,因为SDK对性能损耗很大,所以现在定制Trace协议,客户端上报数据集成Trace信息,针对APP做出特殊业务处理,客户端指定特殊标志,有特殊标志就不会去做抽样而是去做全采,将Trace的ID透传到服务端,自研的APM监控也会做数据关联,形成全链路打通。
# 多个监控系统的融合:我们大部分监控系统都是之前自研的SDK,多个监控系统针对的数据不同,业务方去接入SDK也是比较麻烦,业界有推出OpenTelemetry协议,集成Metrics、Trace、日志,解决SDK的融合难题,目前在做相关自研,「优维」也是推出了「超融合监控」的解决方案,融合监控系统的所有信息,也是YY直播未来发展的看齐方向。
本次直播观众们的提问热情也是空前高涨,参与感拉满,也是一度让讲师被讨论区的问题弹幕挡住了屏幕看ppt的视线!什么叫学术交流氛围啊(战术后仰)?
↓↓↓
A2:主机监控、容器的Pod监控、业务的Trace监控、自研的Aomi监控,服务治理平台对应的Dashboard把所有监控数据整合到一起给到业务方去查询分析。
A18:数据统计维度有所区别,APM监控属于自定义指标的上报,包含客户端比较关注的指标,比方说手机应用的系统版本、对应的运营方、对应的手机平台,主要去分析APP的整体运营质量,没办法去定位一些比较细节性的具体问题,从手机端到服务端定位具体问题是支持不了的,Trace主要是用来去做链路追踪的分析,没有去采集手机信息,而是去定位故障根因。
UGeek大咖说大厂可观测系列往期回顾:UGeek大咖说第三期【OPPO专场】